package net.marloncarvalho.loteriaz.entidades;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import org.hibernate.annotations.NamedQueries;
import org.hibernate.annotations.NamedQuery;

/**
 * Classe que representa genericamente um concurso de uma loteria;
 * 
 * @author Marlon Silva Carvalho
 * @since 15/07/2009
 */
@Entity
@Table(name="concursos")
@NamedQueries(
		{
			@NamedQuery(name="obterUltimoConcursoLoteria", query="from Concurso concurso where concurso.loteria.id = :loteria and concurso.id in (select max(concurso.id) from Concurso concurso)")
		}
)
public class Concurso implements EntidadePersistente {
	
	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(name="id")
	private Long id;
	
	@ManyToOne
	@JoinColumn(name="idloteria")
	private Loteria loteria;
	
	@Column(name="numero")
	private String numero;
	
	@Column(name="data")
	private Date data;
	
	@Column(name="local")
	private String local;
	
	public Long getId() {
		return id;
	}
	
	public void setId(Long id) {
		this.id = id;
	}
	
	public Loteria getLoteria() {
		return loteria;
	}
	
	public void setLoteria(Loteria loteria) {
		this.loteria = loteria;
	}
	
	public String getNumero() {
		return numero;
	}
	
	public void setNumero(String numero) {
		this.numero = numero;
	}
	
	public Date getData() {
		return data;
	}
	
	public void setData(Date data) {
		this.data = data;
	}
	
	public String getLocal() {
		return local;
	}
	
	public void setLocal(String local) {
		this.local = local;
	}
	
}